public class Main {
    public int numberOfArithmeticSlices(int[] nums) {
        int n = nums.length,sum = 0;
        if(n == 1 || n == 2) return 0;
        int[] dp = new int[n+1];  //[i] 表示以i位置结尾的子数组中，等差数列的个数

        for(int i = 3;i <= n;i++) {
            if(nums[i-3] + nums[i-1] == 2 * nums[i-2]) dp[i] = dp[i-1] + 1;
        }
        for(int x : dp) sum += x;  //返回 dp 中所有元素的总和，就是等差子数组的总个数
        return sum;
    }

}
